package com.shujia.process_contr.seven;

import org.junit.Test;

public class ForExer1 {

    // 4.求n的阶乘 9 * 8 * 7 * ... * 1
    @Test
    public void exer4() {
        int result = 1;
        for (int i = 9; i >= 1; i--) {
            result *= i;
        }
        System.out.println(result);
    }

    /*
    输出所有的水仙花数，所谓水仙花数是指一个3位数，其各个位上数字立方和等于其本身。
    例如： 153 = 1*1*1 + 3*3*3 + 5*5*5
    371 = 28 + 343 + 1
     */
    @Test
    public void exer3() {
        // 100 ~ 999
        for (int i = 100; i < 1000; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) {
                System.out.println(i);
            }
        }
    }

    // 打印1~100之间所有是7的倍数的整数的个数及总和
    @Test
    public void exer2() {
        int sum = 0;
        int count = 0;// 记录个数
        for (int i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                sum += i;
                count++;
            }
        }
        System.out.println(sum);
        System.out.println(count);
    }

    // 打印1~100之间所有奇数的和
    @Test
    public void exer1() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 1) {
                sum += i;
            }
        }
        System.out.println(sum);
    }

    public static void main(String[] args) {
        /*
        编写程序从1循环到150，并在每行打印一个值，另外在每个3的倍数行上打印出“foo”,
        在每个5的倍数行上打印“biz”,在每个7的倍数行上打印 输出“baz”。
         */
        for (int i = 1; i <= 150; i++) {
            System.out.print(i); // 不换行
            if (i % 3 == 0) {// 3的倍数
                System.out.print(" foo");
            }
            if (i % 5 == 0) {
                System.out.print(" biz");
            }
            if (i % 7 == 0) {
                System.out.print(" baz");
            }
            // 换行
            System.out.println();
        }
    }
}
